<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 正则里的  () [] |
        // 一、分组 (); 把多个匹配分成一组 ；
        // var str = "fabcabccdsfddsf";
        // // 中间 只会匹配最后一个字符出现多次 
        // var reg = /(abc){2}/;
        // console.log( reg.test(str) );

        // 分组补充  :获取 分组里匹配到的内容  会根据分组来编号 分别是 $1 $2 $3 ....
        // var str = "fdafd32432dfafds";
        // var reg = /(\d+)(\w+)/;
        // var res =   reg.test(str);
        // console.log(res);
        // console.log(RegExp.$1)
        // console.log(RegExp.$2)






    //二、 [] :集合  集合里面是或者关系 整个集合会代表一个字符 
    //     var str = "this knife is 5km";  //匹配单位 km cm dm 都可以 
    //     var reg = /\d[kcd]m/;
    //    console.log(  reg.test(str));

    // 集合补充  1.集合匹配一段  2. 集合取反  
    // [0-9] : 匹配一个字符 字符只能是 0-9之间的数字 
    // [a-z] : 匹配一个字符 字符是从 a-z 之间 字符 
    // [A-Z] : 匹配一个字符 字符是从 A-Z 之间 字符 
    // \w (数字 字母 下划线) ---等同于-> 改成集合  [0-9a-zA-Z_];
    // \d 数字 等同于 [0-9]
    // var  str = "fdafddaf";
    // var reg = /\d+/;
    // var reg = /[0-9]+/
    // console.log( reg.test(str));
    // 注意：集合取反 ^  要和集合之外的 ^ 区分开 
    // var str = "aaaaa_";
    // var reg = /[^a]/  //除了 a以外的任意字符 ；
    // console.log( reg.test(str));





    //三、 正则里  |：或者   
    // var str = "fdsfdas";
    // var reg = /(ab)|(cd)/;
    // console.log( reg.test(str));

    //思考： 如何匹配 0-255之间的数字？？？ 
    // （必须得拆分看: 1位数字的时候 2位数字时候 3位数字（2种情况） ）;
    
         




    </script>
</body>
</html>